package exhaustivity.buckets;

/**
 * @author longzj
 */
class BucketState {


    private int[] mVolumes;
    private StateTransition mTransition;
    private BucketState mParentState;

    BucketState(final int largeVolume, final int middleVolume, final int smallVolume) {
        mVolumes = new int[3];
        mVolumes[0] = largeVolume;
        mVolumes[1] = middleVolume;
        mVolumes[2] = smallVolume;

    }

    int getLargeVolume() {
        return mVolumes[0];
    }

    int getMiddleVolume() {
        return mVolumes[1];
    }

    int getSmallVolume() {
        return mVolumes[2];
    }

    int getValue(int index) {
        return mVolumes[index];
    }

    StateTransition getTransition() {
        return mTransition;
    }

    void setTransition(final StateTransition transition) {
        mTransition = transition;
    }

    BucketState getParentState() {
        return mParentState;
    }

    void setParentState(final BucketState parentState) {
        mParentState = parentState;
    }

    void setValue(int index, int value) {
        mVolumes[index] = value;
    }
}
